// BaseScene.h

#ifndef __BASE_SCENE_H__
#define __BASE_SCENE_H__

#include <state/State.h>

class BaseScene : public STATE::State
{
public:
	BaseScene();
	virtual ~BaseScene();

	// APIs
	virtual void	Enter();
	virtual void	Leave() = 0;

	virtual STATE::StateId	Update( CORE::Time & TimeDelta );
	virtual void	Render( IRenderingEngine * pRenderer );

protected:

	virtual STATE::StateId	UpdateInput()
	{ return STATE_ID_INVALID; }

	virtual STATE::StateId UpdateAnyPointer()
	{ return STATE_ID_INVALID; }

	virtual void SetupComponents() {;};

	virtual void UpdateComponents() {;};

	virtual STATE::StateId Select()
	{ return STATE_ID_INVALID; }
};


#endif